基本的な使い方#

このセクションでは, pyvista.examples モジュールと外部ファイルを使って,PyVistaで3Dデータを読み込んでプロットする方法を説明します.

Tip

このチュートリアルのセクションは,PyVistaドキュメントの Basic API Usage の章から採用されています.

既存データの活用#

PyVistaにデータを取り込む方法は主に2つあります.ゼロから自分で作成するか, 互換性のあるファイルフォーマット のいずれかからデータセットを読み込むかです.これから始めるので,ファイルをロードしてみましょう.

もし,サーフェスモデルや点群,VTKファイルのような手近なデータセットがあれば,それを使うことができます.すぐに使えるものがない場合は,PyVistaの pyvista.examples.downloads モジュールでさまざまなファイルをダウンロードすることができます.

ここでは,非常に基本的なデータセットをダウンロードすることができます.

from pyvista import examples
dataset = examples.download_saddle_surface()
dataset
PolyDataInformation
N Cells5131
N Points2669
N Strips0
X Bounds-2.001e+01, 2.000e+01
Y Bounds-6.480e-01, 4.024e+01
Z Bounds-6.093e-01, 1.513e+01
N Arrays0

これは pyvista.PolyData であり,事実上,点,線,面を含むサーフェスデータセットであることに注意してください.このデータセットを使って,すぐにプロットすることができます.

dataset.plot(color='tan')

これはかなり基本的なプロットです. show_edges=True などのパラメータを追加したり, color を別の値に設定して色を変更することで,プロット方法を変更することができます.これらのことは,PyVistaのAPIドキュメントである pyvista.plot() に記載されていますが,ここでは別のデータセットを見てみましょう.これは体積のデータセットです.

dataset = examples.download_frog()
dataset
HeaderData Arrays
ImageDataInformation
N Cells31594185
N Points31960000
X Bounds0.000e+00, 4.990e+02
Y Bounds0.000e+00, 4.690e+02
Z Bounds0.000e+00, 2.025e+02
Dimensions500, 470, 136
Spacing1.000e+00, 1.000e+00, 1.500e+00
N Arrays1
NameFieldTypeN CompMinMax
MetaImagePointsuint810.000e+002.540e+02

This is a pyvista.ImageData, which is a dataset containing a uniform set of points with consistent spacing. When we plot this dataset, we have the option of enabling volumetric plotting, which plots individual cells based on the content of the data associated with those cells.

dataset.plot(volume=True)

注釈

もうお気づきかもしれませんが,オンラインチュートリアルのプロットは,あなたのコンピュータでどのようにプロットしているかによって,あなたのプロットとは少し違って見えるかもしれません.これは使用している jupyter_backend や,jupyter notebook を使用しているかどうかによって異なります.これらの例で遊んでいる間に, notebook を無効にする(または有効にする),あるいはノートブック内で表示するために別のプロットバックエンドを使用するなど,自由に設定を変更してください(該当する場合).

ファイルから読み込む#

コンピュータのローカルにアクセスできるのであれば,ファイルから直接データセットを読み込むことができます.これは,VTKがサポートしている多くのファイルフォーマットの1つであり,PyVistaが meshio のようなライブラリに依存できるように,サポートしていない多くのファイルフォーマットでもあり得ます.

以下の例では,VTKの鉄タンパク質データセット ironProt.vtkpyvista.read() を使ってファイルからロードしています.

import pyvista as pv
dataset = pv.read('ironProt.vtk')
dataset
HeaderData Arrays
ImageDataInformation
N Cells300763
N Points314432
X Bounds0.000e+00, 6.700e+01
Y Bounds0.000e+00, 6.700e+01
Z Bounds0.000e+00, 6.700e+01
Dimensions68, 68, 68
Spacing1.000e+00, 1.000e+00, 1.000e+00
N Arrays1
NameFieldTypeN CompMinMax
scalarsPointsuint810.000e+002.550e+02

This is again a pyvista.ImageData and we can plot it volumetrically with:

dataset.plot(volume=True)

レッスン教材#

このページでは,このレッスンにインタラクティブについていけるノートブックのレンダリングを行っています.

演習#

ダウンロードとプロット例

ダウンロードとプロット例

Download and Plot Examples

ソリューション#

以上が,上記の例に対する解答です.

ダウンロードとプロット例

ダウンロードとプロット例

Download and Plot Examples

Sphinx-Galleryによるギャラリー